# 导入matplotlib的pyplot模块，用于绘图
import matplotlib.pyplot as plt
# 导入numpy库，用于数值计算
import numpy as np

# 设置matplotlib的rcParams参数，使得图表能够正常显示中文和负号
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 定义雷达图的标签，代表不同的职业兴趣类型
radar_labels = ['研究型(I)', '艺术型(A)', '社会型(S)', '企业型(E)', '传统型(C)', '现实型(R)']
# 计算标签的数量，即雷达图的轴的数量
num_vars = len(radar_labels)

# 创建一个二维数组，其中每一行代表一个人的职业兴趣得分
data = np.array([[0.40, 0.32, 0.35, 0.30, 0.30, 0.88],
                 [0.85, 0.35, 0.30, 0.40, 0.40, 0.30],
                 [0.43, 0.89, 0.30, 0.28, 0.22, 0.30],
                 [0.30, 0.25, 0.48, 0.85, 0.45, 0.40],
                 [0.20, 0.38, 0.87, 0.45, 0.32, 0.28],
                 [0.34, 0.31, 0.38, 0.40, 0.92, 0.28]])

# 定义雷达图的颜色列表
colors = ['yellow', 'red', 'green', 'purple', 'orange', 'cyan']

# 遍历数据集中的每一行数据
for i, d in enumerate(data):
    # 将numpy数组转换为列表，方便后续操作
    r = d.tolist()
    # 将列表的第一个元素追加到列表末尾，形成闭合的雷达图
    r += r[:1]
    # 绘制雷达图的线，theta是一个未定义的变量，这里应该是一个角度序列（稍后补充）
    # plt.polar(theta, r, color=colors[i], linewidth=1)
    # 填充雷达图的区域
    # plt.fill(theta, r, color=colors[i], alpha=0.2)

# 注意：这里缺少theta的定义，theta应该是一个从0到2*pi的等差数列，且数量与num_vars相同
# 以下是theta的补充定义
theta = np.linspace(0, 2 * np.pi, num_vars, endpoint=False).tolist()
theta += theta[:1]  # 闭合角度序列

# 设置雷达图的标签角度和对应的文本标签
plt.thetagrids(np.degrees(theta[:-1]), radar_labels)
# 设置图表的标题
plt.title('霍兰德职业兴趣测试')

# 显示图表
plt.show()